package com.atmk.atmk.designMode.创建型.建造者模式.抽象建造者;


import com.atmk.atmk.designMode.创建型.建造者模式.产品角色.House;

/**
 * 抽象的建造者
 */
public abstract  class HouseBuilder {
    /**
     * 组合House
     */
    protected House house = new House();

    //-------------------------将建造的流程写好--------------------------

    /**
     * 打地基
     */
    public abstract void buildBasic();

    /**
     * 砌墙
     */
    public abstract void buildWalls();

    /**
     * 封顶
     */
    public abstract void roofed();

    /**
     * 建造好房子后将产品(房子) 返回
     * @return
     */
    public House buildHouse() {
        return house;
    }
}
